home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 003 / kit.arc / KIT.BAS next >
Encoding:
BASIC Source File  |  1984-11-24  |  29.8 KB  |  623 lines

  1. 1 REM KEEP IN TOUCH
  2. 3 REM (C) 1984 GNOSSOS SOFTWARE ALL RIGHTS RESERVED
  3. 5 REM BY STEVE KANTOR 202-387-0858
  4. 6 REM V0 - 11/10/84
  5. 10 KEY OFF:CLS:GOSUB 40000:GOTO 60000
  6. 20 GOSUB 102:RETURN
  7. 21 GOSUB 280:GOSUB 281:RETURN
  8. 22 GOSUB 120:GOSUB 114:RETURN
  9. 23 COLOR 7,0:GOSUB 390:PRINT S$(SN,X,0);:RETURN
  10. 24 GOSUB 102:GOSUB 124:GOSUB 110:GOSUB 530:RETURN
  11. 25 GOSUB 534:GOSUB 564:RETURN
  12. 26 GOSUB 140:GOSUB 530:RETURN
  13. 70 REM inchar
  14. 72 B(6)=0:R$=INKEY$:IF R$="" THEN 72
  15. 74 IF LEN(R$)=2 THEN R$=RIGHT$(R$,1):B(6)=-1
  16. 75 R=ASC(R$):RETURN
  17. 100 LOCATE 4,1:PRINT STRING$(79,"═");:RETURN
  18. 101 A$="MENU":GOSUB 111:RETURN
  19. 102 CLS:GOSUB 100:GOSUB 101:B(2)=0:RETURN
  20. 103 LOCATE 3,1:PRINT STRING$(79,"─");:RETURN
  21. 104 REM BOX
  22. 105 LOCATE GSV,GSH:PRINT "╔";STRING$(BW-2,"═");"╗";
  23. 106 FOR V=GSV+1 TO GSV+BH-1:LOCATE V,GSH
  24. 107 PRINT "║";:LOCATE V,GSH+BW-1:PRINT "║";:NEXT
  25. 108 LOCATE GSV+BH,GSH:PRINT "╚";STRING$(BW-2,"═");"╝";:RETURN
  26. 110 GSV=6:GSH=5:BW=70:BH=17:GOSUB 104:RETURN
  27. 111 COLOR 0,7:LOCATE 1,74:PRINT " "A$" ";:COLOR 7,0:RETURN
  28. 112 COLOR 23,1:LOCATE 1,74:PRINT " WAIT ";:COLOR 7,0:RETURN
  29. 113 GSV=7:GSH=5:BW=70:BH=15:GOSUB 104:RETURN
  30. 114 A$="PAUSE":GOSUB 111:GOSUB 281:LOCATE 2,1:COLOR 15,0
  31. 115 PRINT "Please press any key...";:GOSUB 70:COLOR 7,0:GOSUB 101:RETURN
  32. 120 REM MESSAGE
  33. 121 GOSUB 280:LOCATE 3,1:COLOR 15,0:PRINT M$;:COLOR 7,0:RETURN
  34. 122 GOSUB 281:LOCATE 2,1:COLOR 15,0:PRINT NM$;", ";M$;:COLOR 7,0:RETURN
  35. 124 REM OUTCL
  36. 125 FOR T1=9 TO 16:LOCATE VAL(CL$(T1,1)),VAL(CL$(T1,2))
  37. 126 PRINT CL$(T1,0);":";:NEXT:RETURN
  38. 130 REM PROMPT
  39. 131 GOSUB 120:PRINT ":  ";:LOCATE ,,1,1,31:LINE INPUT;"";Q$:GOSUB 280:RETURN
  40. 133 A$="EDIT":GOSUB 111:GOSUB 21:GOSUB 160
  41. 134 LOCATE 2,1:PRINT "Use the direction keys to highlight information (UP/DOWN/LEFT/RIGHT/HOME/END)";
  42. 135 LOCATE 3,1:PRINT "Type in new information followed by RETURN.  Use DEL and INS as needed.";
  43. 136 RETURN
  44. 140 REM CLEARCARD
  45. 141 LOCATE 15,23:PRINT SPC(10);:FOR T1=8 TO 13:LOCATE T1,20:PRINT SPC(50);
  46. 142 LOCATE T1+9,22:PRINT SPC(50);:NEXT:LOCATE 15,50:PRINT SPC(10);:RETURN
  47. 143 REM YESNO
  48. 144 B(2)=0:GOSUB 122:GOSUB 280:SN=5:B(8)=0:GOSUB 300:IF T2=2 THEN 146
  49. 145 IF X=1 THEN B(8)=-1 ELSE IF X=3 THEN B(8)=2
  50. 146 RC=PC:GOSUB 21:RETURN
  51. 147 REM CHOOSEFILE
  52. 148 GOSUB 20:LOCATE 2,1:PRINT"Here is a list of your Address Books.  Point using the direction keys.":PRINT "Press the RETURN key to select the Book that is highlighted.";
  53. 149 SN=6:GOSUB 300:IF B THEN F$="TEMP.DAT":RETURN ELSE RETURN
  54. 150 IF B THEN RETURN ELSE B(12)=X:GOSUB 281:IF G$(B(12),0)="NEW" THEN GOSUB 156:RETURN
  55. 151 F$=G$(B(12),0)+".DAT":GOSUB 500:RETURN
  56. 152 REM POINT
  57. 153 A$="POINT":GOSUB 111:LOCATE 1,1:PRINT "Press the ESC key to end pointing and return to menu";
  58. 154 M$="Use the direction keys (UP/DOWN/LEFT/RIGHT/HOME/END/PGUP/PGDN)":GOSUB 122
  59. 155 M$="Press the RETURN key to select the choice you are pointing to":GOSUB 120:RETURN
  60. 156 NG=NG+1:B(12)=NG:F$="NEW.DAT":GOSUB 500:REM NEWFILENAME
  61. 157 M$="Enter a name for your file (8 characters or less, eg. PEOPLE)":GOSUB 130
  62. 158 IF LEN(Q$)>8 THEN 157 ELSE G$(NG,0)=Q$:F$=Q$+".DAT":G$(NG,1)="1"
  63. 159 M$="Enter a description of the file":GOSUB 130:G$(NG,2)=Q$:RETURN
  64. 160 LOCATE 1,1:PRINT "Press the ESC key when you are finished to return to the menu";:RETURN
  65. 162 REM ISDATE
  66. 163 B=0:IF LEN(A$)<>8 THEN RETURN ELSE IF MID$(A$,3,1)<>"/" THEN RETURN
  67. 164 IF MID$(A$,6,1)<>"/" THEN RETURN ELSE IF VAL(MID$(A$,1,2))<1 THEN RETURN
  68. 165 IF VAL(MID$(A$,1,2))>12 THEN RETURN ELSE IF VAL(MID$(A$,4,2))<1 THEN RETURN
  69. 166 IF VAL(MID$(A$,4,2))>31 THEN RETURN ELSE IF VAL(MID$(A$,7,2))<80 THEN RETURN
  70. 167 IF VAL(MID$(A$,7,2))>99 THEN RETURN ELSE B=-1:RETURN
  71. 170 REM headfill
  72. 171 FOR X=1 TO 16:CL$(X,0)=D$(0,X):NEXT:RETURN
  73. 172 M$="To be implemented in future version...":GOSUB 22:RETURN
  74. 173 REM YN
  75. 174 T2=0:IF INSTR("Yy",R$)<>0 THEN B(8)=-1:T2=2
  76. 175 IF INSTR("Nn",R$)<>0 THEN B(8)=0:T2=2 ELSE IF INSTR("Cc",R$)<>0 THEN B(8)=2:T2=2
  77. 177 RETURN
  78. 180 REM ESCSTOP
  79. 181 LOCATE 1,1:PRINT "Press the ESC key to stop printing the report";:RETURN
  80. 200 REM MENU
  81. 202 R=-1:B(2)=0:B=0:GOSUB 281:T1=VAL(M$(MN,0,0)):IF MC>T1 OR PM<>MN THEN MC=1
  82. 204 FOR X=1 TO T1:LOCATE 2,1+(X-1)*10
  83. 206 PRINT M$(MN,X,0);"  ";:NEXT
  84. 208 WHILE R<>K(0):LOCATE 2,1+(MC-1)*10:COLOR 0,15:PRINT M$(MN,MC,0);
  85. 212 GOSUB 280:LOCATE 3,1:PRINT M$(MN,MC,1);
  86. 214 GOSUB 70:GOSUB 230:IF B THEN MC=T3:B=0:RETURN
  87. 216 LOCATE 2,1+(MC-1)*10:PRINT M$(MN,MC,0);
  88. 218 IF R=K(1) THEN B=1:RETURN
  89. 220 IF R=K(5) THEN MC=MC-1:IF MC=0 THEN MC=T1
  90. 222 IF R=K(4) THEN MC=MC+1:IF MC>T1 THEN MC=1
  91. 224 IF R=K(6) THEN MC=1 ELSE IF R=K(7) THEN MC=T1
  92. 226 WEND:R=-1:RETURN
  93. 230 REM
  94. 231 IF B(6) THEN RETURN
  95. 232 IF NOT ((R>=65 AND R<=90) OR (R>=97 AND R<=122)) THEN RETURN
  96. 233 IF R>90 THEN R=R-32
  97. 234 FOR T3=1 TO T1:IF R=ASC(LEFT$(M$(MN,T3,0),1)) THEN B=-1:RETURN
  98. 235 NEXT:RETURN
  99. 280 COLOR 0,0:LOCATE 3,1:PRINT SPC(78);:COLOR 7,0:RETURN
  100. 281 COLOR 0,0:LOCATE 2,1:PRINT SPC(79);:COLOR 7,0:RETURN
  101. 300 REM SCROLL MENU
  102. 302 PC=RC:B=0:T1=VAL(S$(SN,0,0)):FOR X%=1 TO T1
  103. 304 LOCATE VAL(S$(SN,X%,1)),VAL(S$(SN,X%,2)):PRINT S$(SN,X%,0);:NEXT:IF B(2) THEN RETURN
  104. 310 IF X<1 OR X>T1 THEN X=1
  105. 312 B=0:T1=VAL(S$(SN,0,0)):R=-1:WHILE R<>K(0):GOSUB 390
  106. 314 COLOR 0,15:PRINT S$(SN,X,0);:GOSUB 70:IF SN=5 THEN GOSUB 173:IF T2=2 THEN RETURN
  107. 316 GOSUB 23
  108. 317 IF R=K(1) OR R=K(13) THEN B=1:RETURN
  109. 318 IF R=K(5) OR R=K(2) THEN X=X-1
  110. 319 IF R=K(4) OR R=K(3) THEN X=X+1
  111. 320 IF R=K(10) THEN CG=CG-1:B(5)=1:RETURN
  112. 321 IF R=K(11) THEN IF NR<CG*40+40 THEN 322 ELSE CG=CG+1:B(5)=1:RETURN
  113. 322 IF R=K(6) THEN X=1 ELSE IF R=K(7) THEN X=T1
  114. 324 IF SN<3 AND R=K(2) THEN X=X-1 ELSE IF SN<3 AND R=K(3) THEN X=X+1
  115. 327 IF X>T1 THEN X=1 ELSE IF X<1 THEN X=T1
  116. 328 WEND:RC=CG*40+X:RETURN
  117. 350 REM SCRMEN
  118. 352 PC=RC:T1=VAL(S$(SN,0,0)):FOR X=1 TO T1
  119. 354 GOSUB 23:NEXT:IF B(2) THEN RETURN
  120. 360 IF X<1 OR X>T1 THEN X=1
  121. 362 GOSUB 133:PC=RC:B=0:T1=VAL(S$(SN,0,0)):R=-1:WHILE R<>K(1):GOSUB 390
  122. 364 COLOR 0,15:PRINT S$(SN,X,0);
  123. 365 COLOR 15,0:GOSUB 390:GOSUB 70:IF R=K(12) THEN S$(SN,X,0)=T$(4):GOTO 367 ELSE IF (R=K(8) OR R=K(9)) AND (SN=3 OR SN=4) AND B(6) THEN RETURN
  124. 366 IF NOT(R=K(1) OR R=K(0) OR R=K(2) OR R=K(3) OR R=K(4) OR R=K(5) OR R=K(6) OR R=K(7)) OR (B(6)=0 AND R<>13 AND R<>27) THEN 375
  125. 367 GOSUB 23
  126. 368 IF R=K(1) THEN B=1:RETURN
  127. 369 IF R=K(5) THEN X=X-1 ELSE IF R=K(2) THEN X=X-1
  128. 370 IF R=K(4) OR R=K(0) THEN X=X+1 ELSE IF R=K(3) THEN X=X+1
  129. 372 IF R=K(6) THEN X=1 ELSE IF R=K(7) THEN X=T1
  130. 374 GOTO 380
  131. 375 GOSUB 390:PRINT SPC(LEN(S$(SN,X,0)));:GOSUB 390:PRINT R$;:LINE INPUT;"";S$(SN,X,0):S$(SN,X,0)=R$+S$(SN,X,0):IF SN=4 AND (X=9 OR X=10) THEN A$=S$(SN,X,0):GOSUB 162:IF MN=6 OR MN=7 THEN 376 ELSE IF NOT B THEN BEEP:GOTO 365
  132. 376 GOSUB 23:X=X+1:IF X>T1 THEN X=1 ELSE IF X<1 THEN X=T1:GOTO 382
  133. 380 IF X>T1 THEN X=1 ELSE IF X<1 THEN X=T1
  134. 381 GOSUB 23
  135. 382 WEND:RC=PC:RETURN
  136. 390 LOCATE VAL(S$(SN,X,1)),VAL(S$(SN,X,2)),1,12,13:RETURN
  137. 400 REM TIM
  138. 403 T$=TIME$:T%(0)=VAL(LEFT$(T$,2)):T%(1)=VAL(MID$(T$,4,2)):T%(2)=VAL(MID$(T$,7,2))
  139. 405 T%=T%(0):IF T%(0)>12 THEN T$(2)="PM":T%=T%-12 ELSE T$(2)="AM"
  140. 406 T$(3)=STR$(T%)+":"+STR$(T%(1))+"  "+T$(2)
  141. 407 RETURN
  142. 410 REM timer
  143. 411 GOSUB 400:T%(7)=T%(0):T%(8)=T%(1):T%(9)=T%(2):RETURN
  144. 413 GOSUB 400:T1=T%(0)*60*60+T%(1)*60+T%(2)
  145. 414 T2=T%(7)*60*60+T%(8)*60+T%(9):T3=T1-T2
  146. 415 T1=INT(T3/60):T2=T3-T1*60:RETURN
  147. 418 GOSUB 280
  148. 419 GOSUB 413:M$="Elapsed time is "+STR$(T1)+" minutes and "+STR$(T2)+" seconds  ":GOSUB 22:RETURN
  149. 420 M$="Set alarm, up/down=hours, right/left=minutes. Press ESC when time is set.":GOSUB 120
  150. 421 T%(12)=-1:COLOR 15,0:T%=T%(3):T$="AM":IF T%(3)>12 THEN T%=T%-12:T$="PM"
  151. 422 LOCATE 19,23:PRINT SPC(20);:LOCATE 19,23:PRINT T%;":";T%(4);" ";T$;
  152. 423 GOSUB 70:IF R=K(1) OR R=K(0) THEN T$(1)=STR$(T%)+":"+STR$(T%(4))+" "+T$:COLOR 7,0:RETURN
  153. 424 IF R=K(2) THEN T%(3)=T%(3)+1
  154. 425 IF R=K(3) THEN T%(3)=T%(3)-1
  155. 426 IF R=K(5) THEN T%(4)=T%(4)-1:IF T%(4)<0 THEN T%(4)=59:T%(3)=T%(3)-1
  156. 427 IF R=K(4) THEN T%(4)=T%(4)+1:IF T%(4)>59 THEN T%(4)=0:T%(3)=T%(3)+1
  157. 428 IF T%(3)>23 THEN T%(3)=0 ELSE IF T%(3)<0 THEN T%(3)=23
  158. 429 GOTO 421
  159. 430 REM SETALARM
  160. 432 T$="OFF":IF T%(12) THEN T$="ON"
  161. 433 M$="The alarm is currently set "+T$:GOSUB 120:GOSUB 114:RETURN
  162. 440 REM DISPLAYTIME
  163. 441 GOSUB 400:GOSUB 102:GOSUB 110:LOCATE 9,35:PRINT "KEEP IN TOUCH";
  164. 444 LOCATE 12,8:PRINT "Current Time:  ";T$(3);
  165. 445 LOCATE 13,8:PRINT "Current Date:  ";DATE$;
  166. 446 LOCATE 16,8:PRINT "Starting Time: ";T$(0);
  167. 448 T$="OFF":IF T%(12) THEN T$="ON"
  168. 449 LOCATE 19,8:PRINT "Alarm Setting: ";T$(1);"   ";T$;:RETURN
  169. 450 REM CHECKALARM
  170. 451 IF T%(12)=0 THEN RETURN
  171. 452 GOSUB 400:T1=T%(3)*60+T%(4):T2=T%(0)*60+T%(1):T3=T%(5)*60+T%(6)
  172. 454 IF T2>=T1 AND T1>T3 THEN 455 ELSE RETURN
  173. 455 R$=INKEY$:GOSUB 21:M$=NM$+" , the time is now "+T$(3):GOSUB 120
  174. 457 COLOR 23,1:LOCATE 1,74:PRINT "ALARM ";:COLOR 7,0:FOR T=1 TO 5
  175. 458 SOUND 500,5:FOR P=1 TO 400:NEXT:NEXT:T%(12)=0:GOSUB 114:RETURN
  176. 460 REM REPORT
  177. 461 B(9)=0:M$="Would you like to send report to the printer":GOSUB 143
  178. 462 GOSUB 610:GOSUB 618:IF B(8)=2 THEN RETURN ELSE IF B(8) THEN B(9)=-1
  179. 463 GOSUB 484:CLS:GOSUB 180:PRINT:PRINT:GOSUB 103:LC=0:IF RN=5 THEN LPP=999:GOTO 465
  180. 464 IF B(9) THEN LPP=66 ELSE LPP=20
  181. 465 FOR RC=1 TO NR:IF (B(17) AND B%(RC)=0) OR D$(RC,2)="<DELETED>" THEN 468
  182. 466 GOSUB 470:IF LC=LPP THEN LC=0:GOSUB 480:IF R=K(1) THEN GOSUB 102:RETURN
  183. 467 IF INKEY$=CHR$(27) THEN GOSUB 102:RETURN
  184. 468 NEXT:GOSUB 480:GOSUB 102:RETURN
  185. 470 ON RN GOSUB 471,471,471,471,475,471,471,471:LC=LC+1:RETURN
  186. 471 FOR T2=1 TO 10:T0=R%(RN,T2,0):T1=R%(RN,T2,1):IF T0=999 OR T1=0 THEN IF B(9) THEN LPRINT:RETURN ELSE PRINT:RETURN
  187. 472 IF B(9) THEN LPRINT LEFT$(D$(RC,T0),T1);SPC(1+T1-LEN(LEFT$(D$(RC,T0),T1))); ELSE PRINT LEFT$(D$(RC,T0),T1);SPC(1+T1-LEN(LEFT$(D$(RC,T0),T1)));
  188. 473 NEXT:RETURN
  189. 475 LPRINT D$(RC,1);" ";D$(RC,2):LPRINT D$(RC,3):LPRINT D$(RC,4):LPRINT D$(RC,5);", ";D$(RC,6);"  ";D$(RC,7):FOR T3=1 TO 5:LPRINT:NEXT:RETURN
  190. 476 RETURN
  191. 480 REM newpage
  192. 481 IF NOT B(9) THEN GOSUB 114:CLS:GOSUB 180:PRINT:PRINT:GOSUB 103 ELSE LPRINT FF$
  193. 482 RETURN
  194. 484 REM DOSELECT
  195. 485 IF NOT B(16) THEN RETURN ELSE M$="Do you want to report only contacts where "+B$(0):GOSUB 143
  196. 486 B(17)=0:IF B(8)=-1 THEN B(17)=-1
  197. 487 RETURN
  198. 490 REM todo
  199. 491 GOSUB 102:GOSUB 113:COLOR 0,15:LOCATE 8,30:PRINT NM$;"'s Things To Do ";
  200. 492 COLOR 7,0:FOR T=1 TO 10:LOCATE T+9,7:PRINT T:NEXT:X=1
  201. 493 GOSUB 573:SN=3:GOSUB 350:IF R=K(8) THEN T1=X:GOSUB 496:GOTO 490:X=T1
  202. 494 IF R=K(9) THEN T1=X:GOSUB 497:GOTO 490:X=T1 ELSE RETURN
  203. 496 FOR T2=X TO 10:S$(SN,T2,0)=S$(SN,T2+1,0):NEXT:B(2)=-1:RETURN
  204. 497 IF X=10 THEN RETURN ELSE FOR T2=10 TO X+1 STEP -1:S$(SN,T2,0)=S$(SN,T2-1,0):NEXT:S$(SN,X,0)="":B(2)=-1:RETURN
  205. 500 REM READDATA
  206. 501 GOSUB 102:B(13)=0:M$="Reading information from disk for "+F$:GOSUB 120
  207. 502 GOSUB 112:OPEN F$ FOR INPUT AS #1
  208. 503 NF=16:T2=0
  209. 504 INPUT #1,T$:IF T$<>"*KIT*" THEN T2=1:CLOSE #1:OPEN F$ FOR INPUT AS #1:GOTO 507
  210. 505 GOSUB 640:M$="Total of "+T3$+" contacts, last updated on "+T1$+" at "+T2$:GOSUB 120
  211. 507 FOR X=T2 TO B(15)+2:IF EOF(1) THEN NR=X-1:CLOSE #1:GOSUB 171:GOSUB 101:B(0)=0:RETURN
  212. 508 FOR T1=1 TO NF:INPUT #1,D$(X,T1):NEXT:NEXT:RETURN
  213. 510 REM SAVEDATA
  214. 512 GOSUB 102:GOSUB 112:M$="Saving information to disk for "+F$:GOSUB 120
  215. 513 OPEN F$ FOR OUTPUT AS #1:GOSUB 630
  216. 514 FOR X=0 TO NR:IF D$(X,2)="<DELETED>" THEN 517
  217. 516 WRITE #1,D$(X,1),D$(X,2),D$(X,3),D$(X,4),D$(X,5),D$(X,6),D$(X,7),D$(X,8),D$(X,9),D$(X,10),D$(X,11),D$(X,12),D$(X,13),D$(X,14),D$(X,15),D$(X,16)
  218. 517 NEXT:CLOSE #1:G$(B(12),1)=STR$(NR):GOSUB 600:RETURN
  219. 520 REM FILLMENU
  220. 521 IF B(0) THEN RETURN ELSE SN=CG
  221. 524 FOR X=1 TO 40:IF B(4)=0 THEN S$(SN,X,0)=LEFT$(D$(CG*40+X,3),38) ELSE S$(SN,X,0)=D$(CG*40+X,1)+" "+D$(CG*40+X,2)
  222. 526 NEXT:T%=NR-CG*40:IF T%>40 THEN T%=40
  223. 529 S$(SN,0,0)=STR$(T%):B(0)=-1:RETURN
  224. 530 REM ZOOMIN DRAW
  225. 532 B(2)=1:GOSUB 560:X=1:GOSUB 300:RETURN
  226. 534 REM ZOOMIN EDIT
  227. 536 GOSUB 560:X=1
  228. 537 GOSUB 362:IF B THEN LOCATE ,,0:RETURN ELSE IF R=K(8) THEN GOSUB 390:PRINT SPC(LEN(S$(SN,X,0)));:S$(SN,X,0)="":GOTO 537
  229. 538 B(3)=1:LOCATE VAL(S$(SN,X,1)),VAL(S$(SN,X,2)):LINE INPUT;"";S$(SN,X,0)
  230. 539 B(0)=0:GOTO 537
  231. 550 REM DELPERSON
  232. 551 B(2)=0:M$="Would you like to delete this person's information"
  233. 552 GOSUB 143:IF NOT B(8) OR B(8)=2 OR NR=1 THEN BEEP:RETURN
  234. 553 FOR X=1 TO 16:D$(RC,X)="":NEXT:D$(RC,2)="<DELETED>":D$(RC,3)="<DELETED>"
  235. 554 B(0)=0:RC=RC-1:IF RC=0 THEN RC=2
  236. 555 SN=4:GOSUB 26:RETURN
  237. 560 REM FILLCARD
  238. 562 FOR T%=1 TO 16:S$(SN,T%,0)=D$(RC,T%):NEXT:RETURN
  239. 564 FOR T%=1 TO 16:D$(RC,T%)=S$(SN,T%,0):NEXT:RETURN
  240. 570 REM SAVETODO
  241. 571 IF NOT B(7) THEN RETURN ELSE GOSUB 112:OPEN "TODO.DAT" FOR OUTPUT AS #1
  242. 572 FOR X=1 TO 10:WRITE #1,S$(3,X,0):NEXT:CLOSE #1:RETURN
  243. 573 IF NOT B(7) THEN OPEN "TODO.DAT" FOR INPUT AS #1 ELSE RETURN
  244. 574 FOR X=1 TO 10:INPUT #1,S$(3,X,0):NEXT:CLOSE #1:B(7)=-1:RETURN
  245. 580 REM redial
  246. 581 IF AD THEN PRINT #1,"A/":RETURN ELSE RETURN
  247. 590 REM READGROUP
  248. 591 GOSUB 112:OPEN "FILES.KIT" FOR INPUT AS #2
  249. 592 FOR X=1 TO 20:IF EOF(2) THEN NG=X-1:CLOSE #2:GOSUB 101:GOTO 594
  250. 593 FOR T1=0 TO 2:INPUT #2,G$(X,T1):NEXT:NEXT:NG=20
  251. 594 SN=6:S$(SN,0,0)=STR$(NG):FOR X=1 TO NG
  252. 595 S$(SN,X,0)=G$(X,0)+STRING$(8-LEN(G$(X,0))," ")+STRING$(3," ")+G$(X,1)+STRING$(4-LEN(G$(X,1))," ")+STRING$(3," ")+G$(X,2)
  253. 596 NEXT:RETURN
  254. 600 REM SAVEGROUP
  255. 602 GOSUB 112:OPEN "FILES.KIT" FOR OUTPUT AS #2
  256. 604 FOR X=1 TO 20:IF G$(X,0)="" THEN CLOSE #2:GOSUB 101:RETURN
  257. 606 FOR T1=0 TO 2:WRITE #2,G$(X,T1):NEXT:NEXT:RETURN
  258. 610 REM FINDMAXWIDTH
  259. 611 IF B(13) THEN RETURN ELSE GOSUB 112:FOR T%=1 TO 16:M%(T%)=1:NEXT
  260. 612 FOR X%=1 TO NR:FOR T%=1 TO 16
  261. 614 IF LEN(D$(X%,T%))>M%(T%) THEN M%(T%)=LEN(D$(X%,T%))
  262. 616 NEXT:NEXT:GOSUB 101:B(13)=-1:RETURN
  263. 618 FOR T2=1 TO 10:IF R%(RN,T2,0)=999 THEN RETURN
  264. 619 R%(RN,T2,1)=M%(R%(RN,T2,0)):NEXT:RETURN
  265. 620 REM SPECREP
  266. 621 RC=NR+1:GOSUB 680:GOSUB 610
  267. 623 FOR X=1 TO 16:T%=VAL(D$(RC,X)):R%(RN,T%,0)=X
  268. 624 R%(RN,T%,1)=M%(X):D$(RC,X)="":NEXT:RC=1
  269. 625 TW=0:FOR X=1 TO 10:TW=TW+1+R%(RN,X,1):IF TW>79 THEN R%(RN,X,0)=999:GOTO 627
  270. 626 NEXT
  271. 627 GOSUB 102:RETURN
  272. 630 REM SAVEHEADER
  273. 631 WRITE #1,"*KIT*",B(14),DATE$,TIME$,B(4),NR,"6","7","8"
  274. 632 FOR X=1 TO 3:RN=X+5:WRITE #1,M$(10,X,0),M$(10,X,1),R%(RN,1,0),R%(RN,2,0),R%(RN,3,0),R%(RN,4,0),R%(RN,5,0),R%(RN,6,0),R%(RN,7,0),R%(RN,8,0),R%(RN,9,0),R%(RN,10,0)
  275. 633 NEXT X:RETURN
  276. 640 REM RHEADER
  277. 641 INPUT #1,B(14),T1$,T2$,B(4),T3$,X$,X$,X$
  278. 642 FOR X=1 TO 3:RN=X+5:INPUT #1,M$(10,X,0),M$(10,X,1),R%(RN,1,0),R%(RN,2,0),R%(RN,3,0),R%(RN,4,0),R%(RN,5,0),R%(RN,6,0),R%(RN,7,0),R%(RN,8,0),R%(RN,9,0),R%(RN,10,0)
  279. 643 NEXT:RETURN
  280. 650 REM SEARCH
  281. 652 SN=4:RC=NR+1:GOSUB 24:GOSUB 25
  282. 653 FOR X=1 TO 16:IF D$(RC,X)<>"" THEN SF=X:SF$=D$(RC,X):GOTO 656
  283. 654 NEXT:RETURN
  284. 656 GOSUB 112:FOR X=1 TO NR:IF D$(X,SF)=SF$ THEN B%(X)=-1 ELSE B%(X)=0
  285. 657 NEXT:RC=1:B(16)=-1:B$(0)=CL$(SF,0)+" = "+SF$:RETURN
  286. 660 REM CALL
  287. 661 GOSUB 810
  288. 662 B(2)=0:M$="Did you connect with who you were calling":GOSUB 143:IF B(8)=2 OR B(8)=0 THEN RETURN
  289. 664 CLOSE #1:GOSUB 410:D$(RC,10)=T$(4):MN=8:RETURN
  290. 670 REM ADDCARD
  291. 671 NR=NR+1:IF NR>B(15) THEN BEEP:RETURN
  292. 672 RC=NR:GOSUB 680:FOR T1=1 TO 16:IF D$(RC,T1)<>"" THEN 675
  293. 674 NEXT:NR=NR-1:RC=NR:RETURN
  294. 675 B(3)=-1:B(0)=0:B(13)=0:RETURN
  295. 680 REM EASYOUT
  296. 681 GOSUB 102:FOR X=1 TO 16:LOCATE X+5,1:PRINT CL$(X,0);:NEXT
  297. 682 SN=7:GOSUB 530:GOSUB 25:RETURN
  298. 690 REM ERROR
  299. 691 GOSUB 102:BEEP:BEEP
  300. 692 LOCATE 10,1:PRINT "Program problem number: ";ERR
  301. 693 PRINT "            On line # :  ";ERL
  302. 694 M$="Please call Gnossos Software @ 202-387-0858":GOSUB 22:RESUME NEXT:RETURN
  303. 700 REM EXTRACT
  304. 702 GOSUB 650:GOSUB 102:M$="What is the name for the extracted file ":GOSUB 130
  305. 703 C=0:F$=LEFT$(Q$,8)+".PRN":GOSUB 112:OPEN F$ FOR OUTPUT AS #1
  306. 704 FOR X=1 TO NR:IF B%(X)=0 OR D$(X,2)="<DELETED>" THEN 707
  307. 705 WRITE #1,D$(X,1),D$(X,2),D$(X,3),D$(X,4),D$(X,5),D$(X,6),D$(X,7),D$(X,8),D$(X,9),D$(X,10),D$(X,11),D$(X,12),D$(X,13),D$(X,14),D$(X,15),D$(X,16)
  308. 706 LOCATE 1,1:C=C+1:PRINT C;
  309. 707 NEXT:CLOSE #1:GOSUB 102:RETURN
  310. 810 REM CALL
  311. 811 IF AD=0 THEN RETURN
  312. 812 OPEN "COM1:" FOR OUTPUT AS #1:T$="":IF LEN(D$(RC,8))>8 THEN T$=LS$
  313. 813 PRINT #1,"AT T D ";T$;D$(RC,8)
  314. 814 M$="Dialing...Press any key and pick up phone when you connect":GOSUB 120
  315. 815 IF INKEY$="" THEN 815
  316. 816 PRINT #1,"AT H":CLOSE #1:RETURN
  317. 900 REM MENUDRIVER
  318. 901 B=0:LOCATE 1,1:PRINT SPC(70);:GOSUB 101
  319. 902 GOSUB 200:PM=MN:IF B THEN MN=VAL(M$(MN,0,1)):GOTO 902
  320. 904 ON MN GOSUB 1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200
  321. 905 IF LM=2 AND MN=1 THEN LM=1:GOSUB 1110
  322. 906 GOSUB 450:GOTO 900
  323. 1100 REM PEO,CLO,REP,TOD,DB,GAM,OTH,QUIT
  324. 1104 ON MC GOSUB 1110,1120,1130,1140,1150,1160,1170,1180:RETURN
  325. 1110 B(5)=0:GOSUB 102:SN=CG:GOSUB 152:GOSUB 520:GOSUB 300:IF B THEN RETURN
  326. 1111 IF CG<0 THEN CG=0 ELSE IF CG>2 THEN CG=2
  327. 1112 IF B(5) THEN B(0)=0:B(2)=0:B=0:GOTO 1110
  328. 1114 SN=4:GOSUB 24:MN=2:RETURN
  329. 1120 GOSUB 102:GOSUB 440:MN=5:RETURN
  330. 1130 MN=7:RETURN
  331. 1140 GOSUB 490:RETURN
  332. 1150 MN=4:RETURN
  333. 1160 MN=9:RETURN
  334. 1170 MN=6:RETURN
  335. 1180 M$="Are you sure you want to quit and finish using the program":GOSUB 143:IF B(8)<>-1 THEN RETURN
  336. 1181 GOSUB 570:M$="Do you wish to save your contact file":GOSUB 143
  337. 1182 IF B(8)=-1 THEN GOSUB 510
  338. 1184 CLS:LOCATE 10,35:PRINT "Keep In Touch":LOCATE 12,33:PRINT"Gnossos Software":LOCATE 22,1:IF TEST=-1 THEN END ELSE SYSTEM
  339. 1200 REM CHA,DIA,NEX,PRE,ADD,PRI,OTH,MEN
  340. 1202 B(2)=1:LM=2
  341. 1204 ON MC GOSUB 1210,1220,1230,1240,1250,1260,1270,1280:RETURN
  342. 1206 LOCATE 15,23:PRINT SPC(10);:FOR T1=8 TO 13:LOCATE T1,20:PRINT SPC(52);
  343. 1207 LOCATE T1+9,22:PRINT SPC(50);:NEXT T1:LOCATE 15,50:PRINT SPC(10);
  344. 1208 SN=4:GOSUB 530:RETURN
  345. 1210 SN=4:GOSUB 25:B(0)=0:B(13)=0:RETURN
  346. 1220 GOSUB 660:RETURN
  347. 1230 RC=RC+1:IF RC>NR THEN RC=NR
  348. 1231 SN=4:GOSUB 26:RETURN
  349. 1240 RC=RC-1:IF RC=0 THEN RC=1
  350. 1241 SN=4:GOSUB 26:RETURN
  351. 1250 SN=7:GOSUB 670:SN=4:GOSUB 24:RETURN
  352. 1260 RETURN:REM PRINTCARD
  353. 1270 MN=3:RETURN
  354. 1280 MN=1:RETURN
  355. 1300 REM FIR,LAS,NEX,PRE,DEL,SEL,MEN
  356. 1304 SN=4:ON MC GOSUB 1310,1320,1330,1340,1350,1360,1370
  357. 1305 IF MC<5 THEN GOSUB 26:RETURN ELSE RETURN
  358. 1310 RC=1:RETURN
  359. 1320 RC=NR:RETURN
  360. 1330 RC=RC-1:IF RC=0 THEN RC=1:RETURN ELSE RETURN
  361. 1340 RC=RC+1:IF RC>NR THEN RC=NR:RETURN ELSE RETURN
  362. 1350 GOSUB 550:RETURN
  363. 1360 GOSUB 172:RETURN
  364. 1370 MN=2:RETURN
  365. 1400 REM SAV,SWI,LIS,DEL,EXT,QUT
  366. 1404 ON MC GOSUB 1410,1420,1430,1440,1450,1460:RETURN
  367. 1410 GOSUB 510:RETURN
  368. 1420 GOSUB 510:ERASE D$:DIM D$(B(15)+1,16):GOSUB 147:GOSUB 150:GOSUB 102:MN=1:RETURN
  369. 1430 GOSUB 102:LOCATE 5,1:FOR X=1 TO NG:PRINT S$(6,X,0):NEXT X:GOSUB 114:GOSUB 102:RETURN
  370. 1440 GOSUB 102:GOSUB 147:T4=X:IF T4=B(12) THEN RETURN
  371. 1441 M$="Do you want to delete the entire file from your disk for "+G$(X,0)
  372. 1442 GOSUB 143:IF B(8)<>-1 THEN RETURN
  373. 1443 M$="Are you sure you want to delete"
  374. 1444 GOSUB 143:IF B(8)<>-1 THEN RETURN
  375. 1445 KILL G$(T4,0)+".DAT":FOR T=T4 TO NG:FOR T1=0 TO 2:G$(T,T1)=G$(T+1,T1)
  376. 1446 NEXT:NEXT:RETURN
  377. 1450 GOSUB 700:RETURN
  378. 1460 MN=1:RETURN
  379. 1500 REM SET,OFF,QUT
  380. 1504 ON MC GOSUB 1510,1520,1530:RETURN
  381. 1510 GOSUB 420:GOSUB 440:RETURN
  382. 1520 T%(12)=0:T$(1)="":GOSUB 440:RETURN
  383. 1530 MN=1:RETURN
  384. 1600 REM COM,NAM,DIA,HEA,CAL,BYT,UTI,QUT
  385. 1604 ON MC GOSUB 1610,1620,1630,1640,1650,1660,1670,1680:RETURN
  386. 1610 B(4)=0:B(0)=0:RETURN
  387. 1620 B(4)=-1:B(0)=0:RETURN
  388. 1630 GOSUB 172:RETURN
  389. 1640 FOR X=1 TO 16:D$(0,X)=CL$(X,0):NEXT
  390. 1641 SN=7:RC=0:GOSUB 680
  391. 1642 B(3)=1:FOR X=1 TO 16:CL$(X,0)=LEFT$(D$(0,X),12):NEXT:RETURN
  392. 1650 GOSUB 172:RETURN
  393. 1660 M$="You have "+STR$(FRE(0))+" bytes free. Do you want to clear memory":GOSUB 143:IF B(8)<>-1 THEN RETURN
  394. 1661 M$="Please wait 2 minutes, clearing memory":GOSUB 120:T=FRE("")
  395. 1662 BEEP:GOSUB 114:RETURN
  396. 1670 GOSUB 172:RETURN
  397. 1680 MN=1:RETURN
  398. 1700 REM PHO,DAT,COM,CUS,LAB,DES,MEN
  399. 1704 ON MC GOSUB 1710,1720,1730,1740,1750,1760,1770,1780:RETURN
  400. 1710 RN=1:GOSUB 460:RETURN
  401. 1720 RN=2:GOSUB 460:RETURN
  402. 1730 RN=3:GOSUB 460:RETURN
  403. 1740 MN=10:RETURN
  404. 1750 RN=5:GOSUB 460:RETURN
  405. 1760 M$="Which custom report do you want to design (1, 2, or 3)":GOSUB 130
  406. 1761 RN=VAL(Q$)+5:IF RN<6 OR RN>8 THEN BEEP:GOTO 1760
  407. 1762 M$="Enter a short name for the report (8 characters or less)":GOSUB 130
  408. 1763 IF LEN(Q$)>8 THEN BEEP:GOTO 1762 ELSE M$(10,RN-5,0)=Q$
  409. 1764 M$="Enter a description of report":GOSUB 130:M$(10,RN-5,1)=Q$
  410. 1765 GOSUB 620:RETURN
  411. 1770 GOSUB 650:RETURN
  412. 1780 MN=1:RETURN
  413. 1800 REM CHA,ELA,HAN,TOD,MEN
  414. 1804 ON MC GOSUB 1810,1820,1830,1840,1850:RETURN
  415. 1810 SN=4:GOSUB 25:RETURN
  416. 1820 GOSUB 418:RETURN
  417. 1830 GOSUB 413
  418. 1831 M$="Topic of conversation":GOSUB 130
  419. 1832 OPEN "PHONE.KIT" FOR APPEND AS #1
  420. 1834 WRITE #1,D$(RC,1),D$(RC,2),D$(RC,3),D$(RC,8),T$(4),T$(3),STR$(T1),Q$:CLOSE #1
  421. 1838 M$="You were talking for "+STR$(T1)+" minutes and "+STR$(T2)+" seconds":GOSUB 22:RETURN
  422. 1840 GOSUB 490
  423. 1841 SN=4:GOSUB 24:RETURN
  424. 1850 MN=2:RETURN
  425. 1900 REM mus,ran,lin,cir,coo,ska,yan,men
  426. 1904 ON MC GOSUB 1910,1920,1930,1940,1950,1960,1970,1980:RETURN
  427. 1910 GOSUB 10100:RETURN
  428. 1920 GOSUB 10200:RETURN
  429. 1930 IF MT THEN GOSUB 10300:RETURN ELSE RETURN
  430. 1940 IF MT THEN GOSUB 10400:RETURN ELSE RETURN
  431. 1950 GOSUB 10500:RETURN
  432. 1960 GOSUB 10600:RETURN
  433. 1970 GOSUB 10700:RETURN
  434. 1980 MN=1:RETURN
  435. 2000 REM cu1,cu2,cu3,spe,men
  436. 2002 ON MC GOSUB 2010,2020,2030,2040,2050:RETURN
  437. 2010 RN=6:GOSUB 460:RETURN
  438. 2020 RN=7:GOSUB 460:RETURN
  439. 2030 RN=8:GOSUB 460:RETURN
  440. 2040 RN=4:GOSUB 620:GOSUB 460:RETURN
  441. 2050 MN=7:RETURN
  442. 10100 REM PIANO
  443. 10102 GOSUB 102:M$="Musical Keyboard: To play music press the keynote, press ESC to return to menu":GOSUB 120
  444. 10103 GOSUB 70:IF R=K(1) THEN GOSUB 102:RETURN
  445. 10104 X=INSTR("abcdefg",R$):IF X=0 THEN 10103
  446. 10105 PLAY MID$("abcdefg",X,1):GOTO 10103
  447. 10106 PLAY R$:GOTO 10104
  448. 10200 REM random
  449. 10201 UB=RND*5000:DR=RND*5:WHILE INKEY$=""
  450. 10210 SOUND RND*UB+40,DR:WEND:RETURN
  451. 10300 REM LINES
  452. 10302 SCREEN 2,0,0:LINE (RND*640,RND*200)-(RND*640,RND*200)
  453. 10304 R$=INKEY$:IF R$<>"" THEN SCREEN 0,0,0:GOSUB 102:RETURN
  454. 10306 LINE -(RND*640,RND*200):GOTO 10304
  455. 10400 REM cir
  456. 10402 SCREEN 2,0,0
  457. 10404 R$=INKEY$:IF R$<>"" THEN SCREEN 0,0,0:GOSUB 102:RETURN
  458. 10406 CIRCLE (RND*640,RND*200),RND*20:GOTO 10404
  459. 10500 REM COOk
  460. 10502 CLS:FOR X=400 TO 10 STEP -6:LOCATE RND*23+1,RND*70+1,1,0,31:SOUND 600-X,1
  461. 10504 PRINT "COOKIE!";:FOR P=1 TO X/3:NEXT:NEXT
  462. 10510 FOR P=1 TO 3000:NEXT:GOSUB 102:RETURN
  463. 10600 GOSUB 102:BEEP:LOCATE 10,5:PRINT "Before enlightenment, chop wood and draw water.";:LOCATE 13,10
  464. 10602 PRINT "After enlightenment, chop wood and draw water.";:GOSUB 114:RETURN
  465. 10700 PLAY "o2ccdeced2ccdec3o1bo2ccdefedco1bgabo2cc":RETURN
  466. 40000 REM
  467. 40030 PRINT:PRINT:COLOR 15,0
  468. 40040 PRINT "                     Keep in Touch (TM)  by Gnossos Software "
  469. 40080 PRINT:COLOR 7,0
  470. 40100 PRINT "    Copyright 1984  -  You may share copies with friends  -  V0 Fall 1984"
  471. 40120 PRINT:COLOR 15,0
  472. 40129 PRINT "         Keep in Touch is a shareware product, pay only if you like it."
  473. 40130 PRINT "      Rather than selling it through retail outlets for a much higher price"
  474. 40140 PRINT "    we offer Keep in Touch to you through the miracle of telecommunications."
  475. 40160 PRINT "        Please try the program, and if you like it and find it useful,"
  476. 40170 PRINT "               send payment of $25/personal or $50/business use
  477. 40171 PRINT "       and we will send you the latest version with a package and manual."
  478. 40172 PRINT "          The full version has auto-dialing, more room for data, etc."
  479. 40173 PRINT "    Please share copies with friends, and remind them to pay for the program"
  480. 40175 PRINT "       Shareware means trust and community.  We offer Keep in Touch to you"
  481. 40176 PRINT "        because we run an honest shop and we want to base our business on"
  482. 40177 PRINT "                         Trust, Sharing, and Synergy.  ":PRINT:COLOR 7,0
  483. 40179 PRINT "                               Gnossos Software"
  484. 40180 PRINT "            1625 R St. NW, Washington DC, 20009 -- (202) 387-0858"
  485. 40200 PRINT
  486. 40210 PRINT "                               by Steve Kantor";
  487. 40230 LOCATE 1,1:PRINT STRING$(79,"█");:LOCATE 24,1:PRINT STRING$(79,"█");
  488. 40240 FOR X=1 TO 24:LOCATE X,1:PRINT "█";:LOCATE X,79:PRINT "█";:NEXT X
  489. 40250 FOR X=100 TO 1000 STEP 100:SOUND X,1:NEXT
  490. 40260 LOCATE 1,1:FOR P=1 TO 25000:NEXT P:FOR X=1 TO 16:PRINT STRING$(79," ");:NEXT
  491. 40261 FOR P=1 TO 500:NEXT:LOCATE 16,1:PRINT STRING$(79,"█");:FOR P=1 TO 1000:NEXT:LOCATE 25,1:FOR X=1 TO 11:PRINT:NEXT
  492. 40270 RETURN
  493. 60000 KEY OFF
  494. 60001 NM$="Steve":AD=0:MT=0
  495. 60005 ON ERROR GOTO 690
  496. 60010 IF AD THEN OPEN "com1:" FOR OUTPUT AS #1:CLOSE #1
  497. 60100 DATA 13,27,72,80,77,75,71,79,83,82,73,81,4,45
  498. 60101 DIM K(15),T%(15),B(20):B(15)=120:DIM M%(16),D$(B(15)+1,16),G$(20,2),B%(B(15))
  499. 60104 FOR X=0 TO 13:READ K(X):NEXT:GOSUB 61000:MC=1:MN=1
  500. 60105 T$(4)=MID$(DATE$,1,2)+"/"+MID$(DATE$,4,2)+"/"+MID$(DATE$,9,2)
  501. 60106 GOSUB 400:T$(0)=T$(3):T%(5)=T%(0):T%(6)=T%(1)
  502. 60201 T3=0:T1=5:T2=1:FOR X=1 TO 40:FOR T%=0 TO 2
  503. 60202 S$(T%,X,1)=STR$(T1):S$(T%,X,2)=STR$(T2):NEXT:T3=T3+1:T2=40
  504. 60204 IF T3=2 THEN T3=0:T1=T1+1:T2=1
  505. 60206 NEXT
  506. 60210 COLOR 7,0:GOSUB 590:GOSUB 147:GOSUB 150:GOTO 900
  507. 61000 REM REP
  508. 61002 DIM R%(9,10,1)
  509. 61004 DATA 1,12,2,12,3,37,8,12,999,999
  510. 61006 DATA 2,12,3,40,9,8,10,8,999,999
  511. 61008 DATA 2,12,3,23,16,40,999,999,999,999
  512. 61030 FOR RN=1 TO 4:FOR X=1 TO 10:FOR T=0 TO 1
  513. 61032 READ R%(RN,X,T):NEXT:IF R%(RN,X,0)=999 THEN 61036
  514. 61034 NEXT X
  515. 61036 NEXT RN
  516. 62000 DIM S$(7,40,2)
  517. 62102 SN=3:FOR T1=1 TO 10:S$(SN,T1,1)=STR$(T1+9)
  518. 62104 S$(SN,T1,2)="11":S$(SN,T1,0)=SPACE$(2)
  519. 62106 NEXT:S$(SN,0,0)="10"
  520. 62202 SN=4:S$(SN,0,0)="16"
  521. 62204 DATA First,8,20,Last,8,38,Company,9,20,Street,11,20,City,12,20
  522. 62206 DATA State,12,43,Zip,12,48,Phone,13,20,L,15,23,L,15,50
  523. 62208 DATA T,17,22,C,18,22,P,19,22,T,20,22,S,21,22
  524. 62210 DATA C,22,22
  525. 62212 FOR T1=1 TO 16:FOR T2=0 TO 2:READ S$(SN,T1,T2):NEXT:NEXT
  526. 62300 SN=5:S$(SN,0,0)="3"
  527. 62302 DATA Yes,3,1,No,3,8,Cancel,3,14
  528. 62312 FOR T1=1 TO 3:FOR T2=0 TO 2:READ S$(SN,T1,T2):NEXT:NEXT
  529. 62402 SN=6:S$(SN,0,0)="20"
  530. 62404 FOR T1=1 TO 20:S$(SN,T1,1)=STR$(T1+4):S$(SN,T1,2)="1":NEXT T1
  531. 62802 DIM CL$(16,2)
  532. 62804 DATA Last Meet,15,8,Last Call,15,38,Title,17,8,Category,18,8
  533. 62806 DATA Politics,19,8,Type,20,8,Status,21,8,Comments,22,8
  534. 62808 FOR T1=9 TO 16:FOR T2=0 TO 2:READ CL$(T1,T2):NEXT:NEXT
  535. 62810 FOR T1=1 TO 8:CL$(T1,0)=S$(4,T1,0):NEXT T1
  536. 62820 FOR X=1 TO 16:D$(0,X)=CL$(X,0):NEXT
  537. 62850 SN=7:FOR X=1 TO 16:S$(SN,X,0)=CL$(X,0):S$(SN,X,1)=STR$(X+5)
  538. 62852 S$(SN,X,2)=STR$(15):NEXT:S$(SN,0,0)="16"
  539. 63000 DIM M$(10,9,1)
  540. 63040 DATA People,Examine information on your contacts and clients
  541. 63050 DATA Clock,Check the time and use alarm clock
  542. 63060 DATA Reports,Create reports from your information on people
  543. 63070 DATA To Do,Maintain Things-To-Do list
  544. 63071 DATA Database,"Save your files, switch files, and delete files from your data disk"
  545. 63072 DATA Games,"Games, visual relaxation and amusement"
  546. 63073 DATA Other,"Change organization, sound, dialing, headings, memory, etc."
  547. 63075 DATA Quit,Quit Keep in Touch program
  548. 63076 DATA X,1
  549. 63077 DATA Edit,Edit and change information on contact's card
  550. 63078 DATA Call,Call your contact on the phone using automatic dialer
  551. 63079 DATA Next,Turn to next contact card
  552. 63080 DATA Previous,Turn to previous contact card
  553. 63081 DATA Add,Add a new contact card to your file
  554. 63082 DATA Print,Print this contact on the printer
  555. 63083 DATA Other,"Flipping cards, deleting contact, selecting contacts, etc."
  556. 63084 DATA Menu,Return to a list of all contacts
  557. 63099 DATA X,2
  558. 63100 DATA First,Turn to the first contact
  559. 63102 DATA Last,Turn to the last contact
  560. 63104 DATA Next,Turn to the next contact
  561. 63106 DATA Previous,Turn to the previous contact
  562. 63108 DATA Delete,Delete this contact from your file
  563. 63109 DATA Select,Select a group of contacts
  564. 63120 DATA Menu,Return to contacts menu
  565. 63121 DATA X,3
  566. 63150 DATA Save,Save your Address Book on your disk
  567. 63151 DATA Switch,Save your current Address Book and open a different one
  568. 63154 DATA List,List all of your Address Books on this disk
  569. 63155 DATA Delete,Delete an entire Address Book from your disk - Careful!
  570. 63156 DATA Extract,Extract a group of contacts to a file for transfer
  571. 63158 DATA Menu,Return to main menu
  572. 63160 DATA X,4
  573. 63204 DATA Alarm,Set the alarm clock and turn the alarm clock on
  574. 63208 DATA Off,Turn OFF the alarm clock
  575. 63212 DATA Menu,Return to main menu
  576. 63214 DATA X,5
  577. 63300 DATA Company,Organize contacts by company
  578. 63302 DATA Names,Organize contacts by first and last names
  579. 63304 DATA Dialing,"Special dialing services, information, weather, time"
  580. 63306 DATA Headings,Customize contacts information for your needs
  581. 63308 DATA Calc,Use the built-in calculator
  582. 63310 DATA Bytes,Check the amount of memory that is available for contacts
  583. 63312 DATA Utility,Switch from Keep in Touch to Utility programs
  584. 63313 DATA Menu,Return to main menu
  585. 63314 DATA X,6
  586. 63400 DATA Phonelist,Print a phonelist report
  587. 63402 DATA Dates,Print a report of dates
  588. 63404 DATA Remarks,Print a report of remarks and comments on contacts
  589. 63405 DATA Custom,Print one of your custom reports or a special report
  590. 63406 DATA Labels,Mailing labels using Avery Tabulabel 4146 4" format
  591. 63410 DATA Design,Design custom reports
  592. 63411 DATA Select,Select a subset group of contacts to report
  593. 63412 DATA Menu,Return to main menu
  594. 63414 DATA X,7
  595. 63500 DATA Change,Change the information on your contact
  596. 63502 DATA Elapsed,Display the clock for elapsed time of call
  597. 63504 DATA Hangup,Hang up the telephone connection and show elapsed time
  598. 63506 DATA To Do,Show Things-To-Do list
  599. 63508 DATA People,Return to CONTACTS menu
  600. 63510 DATA X,8
  601. 63600 DATA Piano,Play the musical keyboard like a piano
  602. 63601 DATA Notes,Play random tones at random intervals and enjoy
  603. 63602 DATA Lines,Random lines a la Jackson Pollack
  604. 63603 DATA Circle,Random circles across the heavens
  605. 63604 DATA Tricky,Cookie monster game
  606. 63605 DATA Quote,Marty Schwimmer's favorite quotation
  607. 63606 DATA Yankee,Yankee Doodle Dandy
  608. 63609 DATA Menu,Return to main menu
  609. 63690 DATA X,9
  610. 63700 DATA Cust1,Custom report 1
  611. 63702 DATA Cust2,Custom report 2
  612. 63704 DATA Cust3,Custom report 3
  613. 63706 DATA Special,Create a unique one-time report
  614. 63708 DATA Reports,Return to reports menu
  615. 63710 DATA X,X
  616. 63900 DATA 1,1,2,1,1,1,1,2,1,7
  617. 63920 FOR T1=1 TO 13:FOR T2=1 TO 10:FOR T3=0 TO 1:READ M$(T1,T2,T3):NEXT
  618. 63930 IF M$(T1,T2,0)="X" THEN M$(T1,0,0)=STR$(T2-1):GOTO 63950
  619. 63940 NEXT
  620. 63950 IF M$(T1,T2,1)="X" THEN 63960
  621. 63952 NEXT T1
  622. 63960 FOR T1=1 TO 10:READ M$(T1,0,1):NEXT:RETURN
  623.